LINQ filtro con Length falla

Descripción

Al intentar ejecutar una consulta Where con LINQ en la que usamos la propiedad Length se lanza la siguiente excepción:

Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): Argument data type text is invalid for argument 1 of len function.

El código con el que estamos lanzando la consulta es el siguiente:

using EFCoreExample;

using (ColegioContext db = new())
{
    IQueryable<Estudiante>? estudiantes = db.Estudiantes?.Where(e => e.Nombre.Length > 4);

    foreach (Estudiante e in estudiantes)
    {
        Console.WriteLine($"{e.Id}: {e.Nombre}");
    }
}
Explicacion

El error se debe a que el campo de la base de datos que estamos intentando consultar está definido con el tipo TEXT y este tipo no permite consultar la longitud del string que almacena:

Para solucionar el fallo simplemente tenemos que cambiar el tipo TEXT en la base de datos, por un tipo VARCHAR:

Tags

C# | .Net | LINQ | Where